Thực đơn
Lua Cú phápMặc dù các câu lệnh nên được viết riêng rẽ trên từng dòng, nhưng thực ra Lua có khái niệm bó câu lệnh theo đó có thể viết nhiều câu lệnh trên cùng một dòng, và không nhất thiết có dấu phân cách (;
hoặc ,
).
-- đây là dòng chú thícha = 1b = 2; c = 3 -- phân cách bằng;d = 4, e = 5 -- phân cách bằng,f = 6 g = 7 -- cũng hợp lệ!
Các cấu trúc như rẽ nhánh, lặp đều được kết thúc bằng từ khóa dùng chung là end
.
for i = 1,10 do s = s + i -- không cần khởi tạo s, mặc định s bằng 0 endrepeat s = s - 1until s < -10function gttd(x) if x > 0 then return(x) else return(-x) endend
Các hàm trong Lua được gọi với cặp ngoặc ()
truyền thống.
print(2+3)print("Hello World")
Ngoài ra còn có cú pháp đặc biệt cho phép bỏ cặp ngoặc đơn trong trường hợp tham số có dạng chuỗi hoặc table:
print "Hello World"
Hàm là kiểu dữ liệu cơ bản và có thể gán vào các biến:
gttd = math.absprint(gttd(-5.7))
Khi gọi một phương thức có thể sử dụng theo cách truyền thống với dấu chấm hoặc dùng dấu hai chấm. Trong trường hợp thứ hai thì ta lược bỏ đối tượng gọi phương thức trong danh sách tham số:
aFile = io.open("tenfile", "r") -- đọc file sử dụng phương thức open-- với read là một phương thức của đối tượng aFile trong lớp io a = io.read(aFile, "*n") -- đọc số a từ file aFilea = aFile:read("*n") -- cách 2
tuoi = {Britney=27, Andy=26} -- một kiểu datatableprint(tuoi["Britney"], tuoi["Andy"])print(tuoi.Britney, tuoi.Andy) -- syntactic sugar-- dãy số chính phươngday = {[1] = 1, [2] = 4} -- tương đương với dòng lệnh dưới...day = {1, 4} -- tự động gán các khóa là số nguyênday[3] = 9for i = 4,10 do day[i] = i * iendprint(day) -- mã hiệu của table dayprint(unpack(day)) -- các phần tử trong table day
o Table.insert: thêm một phần tử vào tableVí dụ:
T = {} table.insert(T, "a") table.insert(T, "b") table.insert(T, "c") print(CommaSeparate(T)) a, b, c
o Table.sort: sắp xếp các phần tử trong 1 tableVí dụ sử dụng chức năng sort:
Names = {"Scarlatti", "Telemann", "Corelli", "Purcell", "Vivaldi", "Handel", "Bach"} table.sort(Names) for I, Name in ipairs(Names) do print(I, Name) end Trích: 1 Bach2 Corelli3 Handel4 Purcell5 Scarlatti6 Telemann7 Vivaldi
o Table.concat: nối các phần tử trong table thành một chuỗi.Ví dụ:
print(table.concat({"a", "bc", "d"})) Abcd
o Table.remove: Remove một phần tử trong table.Ví dụ:
T = {} table.insert(T, "a") table.insert(T, "b") table.insert(T, "c") print(CommaSeparate(T)) a, b, c print(table.remove(T)) c print(CommaSeparate(T)) a, b print(table.remove(T)) b print(CommaSeparate(T)) a print(table.remove(T)) a -- T is now empty again:print(#T)
o Table.maxn: tìm trên mỗi cặp key – value trong một table và trả về key tương ứng với value lớn nhất hoặc trả về 0 nếu value không phải là số dương.Ví dụ:
print(table.maxn({"a", nil, nil, "c"})) 4 print(table.maxn({[1.5] = true})) 1.5 print(table.maxn({[ì1.5î] = true})) 0
Thực đơn
Lua Cú phápLiên quan
Lua Luang Prabang Luang Por Dhammajayo Luanda Luangnamtha Lua Blanco Luan Vieira Lualaba Luana Piovani Luanda (tỉnh)Tài liệu tham khảo
WikiPedia: Lua http://www.indigorose.com/products/autoplay-media-... http://www.murga-projects.com/murgaLua/ http://shootout.alioth.debian.org/ http://www.lua.org/ http://www.lua.org/about.html http://www.lua.org/pil https://web.archive.org/web/20180529203516/http://... https://www.lua.org/